#!/bin/sh

. /etc/sysconfig/network-scripts/network-functions

if [ "$INTERFACE" = "" ]; then
    exit 1
fi

case $ACTION in
add|register)
    # Don't do anything if the network is stopped
    if [ -f /dev/.in_sysinit ] ; then
	exit 0
    fi
    if [ ! -f /var/lock/subsys/network ]; then
	exit 0
    fi
    
    case $INTERFACE in
	# interfaces that are registered after being "up" (?)
	ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
	    exit 0
	    ;;
	# interfaces that are registered then brought up
	*)
	    export IN_HOTPLUG=1
	    if [ -x /sbin/ifup ]; then
	        addr=$(get_hwaddr ${INTERFACE})
		if [ -n "$addr" ]; then
			nconfig=$(get_config_by_hwaddr ${addr})
			[ -n "$nconfig" ] && INTERFACE=$nconfig
		fi
		exec /sbin/ifup $INTERFACE
	    fi	
	    ;;
    esac
    ;;

remove|unregister)
    case $INTERFACE in
	# interfaces that are unregistered after being "down" (?)
	ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
	    exit 0
	    ;;
	*)
	    # RedHat and similar
	    export IN_HOTPLUG=1
	    if [ -x /sbin/ifdown ]; then
		exec /sbin/ifdown $INTERFACE
	    fi
	    ;;
    esac
    ;;

*)
    exit 1 ;;

esac
